package com.stefanini.pe.bbva.bp.in.bo.datasource;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRField;

public class SubReporteInformacionPerfilamientoDet implements JRDataSource{
	
	private List listDetalle = new ArrayList();
    private int indexTotalRecs = -1;
    private int indexParcialRecs = -1;
    SubReporteInformacionPerfilamiento subReporte = null;

    public SubReporteInformacionPerfilamientoDet(List listadoRecs, SubReporteInformacionPerfilamiento reporte) {
    	listDetalle = listadoRecs;
        subReporte = reporte;
    }

    public boolean next() throws JRException {
        indexParcialRecs++;
        indexTotalRecs++;
        List listServ = subReporte.getListServ();
        int indexServ = subReporte.getIndexServ();
        boolean bnext = listDetalle != null && indexTotalRecs < listDetalle.size()
        				&& indexParcialRecs < Integer.parseInt(((HashMap)listServ.get(indexServ)).get("cantdetalles").toString());
        if (!bnext) {
            indexParcialRecs = -1;
            indexTotalRecs--;
        }
        return bnext;
    }

    public Object getFieldValue(JRField field) throws JRException {
        Object value = null;
        String fieldName = field.getName();
        HashMap object = (HashMap)listDetalle.get(indexTotalRecs);
        if ("descripcionalternativa".equals(fieldName)) {
            value = object.get("descripcionalternativa");
        } else if ("cantidad".equals(fieldName)) {
            value = object.get("cantidad");
        }else if ("peso".equals(fieldName)) {
            value = object.get("peso");
        } 
        return value;
    }
}
